 |
FL07 - PBXGetVolInfo ÉOÉãÅ[
(98 îN 3 åé 24 ì˙)
Q: PBXGetVolInfoSync Ç®ÇÊÇ— PBXGetVolInfoAsync ÇåƒÇ—èoÇ∑ÇΩÇflÇÃÉOÉãÅ[ÇÕÇ«ÇÃÇÊǧǻLJÇÃÇ≈ǵÇÂǧǩÅB
A: ïKóvÇ»ÉOÉãÅ[ÇÕéüÇÃí ÇËÇ≈Ç∑ÅB
#if GENERATINGCFM
#include <Traps.h>#include <FSM.h>
// kFSMXGetVolInfo ÇÕ Universal Interfaces 3.0.1 Ç‹Ç≈ì±ì¸Ç≥ÇÍǃǢǻǢÅB
#if UNIVERSAL_INTERFACES_VERSION < 0x0301
enum {
kFSMXGetVolInfo = 0x0012
};
#endif
// PBXGetVolInfo ÉãÅ[É`ÉìÇà ProcInfoType ÇÃílÇíËã`ÅB
enum {
uppXGetVolInfoProcInfo = kRegisterBased |
RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |
REGISTER_RESULT_LOCATION(kRegisterD0) |
REGISTER_ROUTINE_PARAMETER(1, kRegisterD0, kFourByteCode) |
REGISTER_ROUTINE_PARAMETER(2, kRegisterD1, kFourByteCode) |
REGISTER_ROUTINE_PARAMETER(3, kRegisterA0, SIZE_CODE(sizeof(XVolumeParamPtr)))
};
// ìØä˙ÉãÅ[É`ÉìópÇÃÉOÉãÅ[
extern pascal OSErr PBXGetVolInfoSync(XVolumeParamPtr
paramBlock)
{
return CallOSTrapUniversalProc(GetOSTrapAddress(_FSDispatch), uppXGetVolInfoProcInfo,
kFSMXGetVolInfo, // DO ÉåÉWÉXÉ^: ÉZÉåÉNÉ^
_FSDispatch, // D1 ÉåÉWÉXÉ^: ÉgÉâÉbÉvÉèÅ[Éh
paramBlock // AO ÉåÉWÉXÉ^: paramBlock
);
}
// îÒìØä˙ÉãÅ[É`ÉìópÇÃÉOÉãÅ[
extern pascal OSErr PBXGetVolInfoAsync(XVolumeParamPtr paramBlock)
{
return CallOSTrapUniversalProc(GetOSTrapAddress(_FSDispatch),
uppXGetVolInfoProcInfo,
kFSMXGetVolInfo, // D0 ÉåÉWÉXÉ^: ÉZÉåÉNÉ^
_FSDispatch | kAsyncMask, // D1 ÉåÉWÉXÉ^: ÉgÉâÉbÉvÉèÅ[Éh
paramBlock // A0 ÉåÉWÉXÉ^: paramBlock
);
}
#endif
-- Mark Cookson
devsupport@apple.com
[
Technical Q&A's : Operating System Services : Files : FL07 ]
|
|